package com.kyd.push.model;

import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.Future;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.Date;



/**
 * OrderForm
 *
 * @author MarsBuilder on 2018/8/24 11:25
 */
@Data
public class OrderForm {

	/**
	 * 货源地地址
	 */
	@NotBlank(message = "货源地地址不能为空")
	@Size(max = 255, message = "货源地地址字数超出")
	private String origins;

	/**
	 * 货源单位
	 */
	@NotBlank(message = "货源单位不能为空")
	@Size(max = 128, message = "货源单位字数超出")
	private String originsUnit;

	/**
	 * 发货人手机号码
	 */
	@NotBlank(message = "发货人手机号码不能为空")
	private String consignorPhone;

	/**
	 * 发货人名称
	 */
	@Size(max = 32, message = "发货人名称字数超出")
	private String consignorName = "";

	/**
	 * 目的地详细地址
	 */
	@NotBlank(message = "目的地详细地址不能为空")
	@Size(max = 255, message = "目的地详细地址字数超出")
	private String destination;

	/**
	 * 目的地单位
	 */
	@NotBlank(message = "目的地单位不能为空")
	@Size(max = 128, message = "目的地单位字数超出")
	private String destinationUnit;

	/**
	 * 收货人名称
	 */
	@Size(max = 32, message = "收货人名称字数超出")
	private String consigneeName = "";

	/**
	 * 收货人手机号码
	 */
	private String consigneePhone = "";

	/**
	 * 车型id
	 */
	@NotNull(message = "车型不能为空")
	private Long cartypeId;

	/**
	 * 城市车型id
	 */
	@NotNull(message = "车型不能为空")
	private Long cityCartypeId;

	/**
	 * 区域编码
	 */
	@NotBlank(message = "区域编码不能为空")
	private String adcode;

	/**
	 * 纬度(货源地)
	 */
	@NotNull(message = "货源地纬度不能为空")
	@Range(min = -90, max = 90, message = "纬度不合法")
	private Float lat;

	/**
	 * 经度(货源地)
	 */
	@NotNull(message = "货源地经度不能为空")
	@Range(min = -180, max = 180, message = "经度不合法")
	private Float lng;

	/**
	 * 额外服务
	 */
	@Size(max = 255, message = "额外服务内容超出")
	private String otherService = "";

	/**
	 * 备注
	 */
	@Size(max = 255, message = "备注内容长度超出")
	private String remark = "";

	/**
	 * 运单里程
	 */
	@NotNull(message = "里程不能为空")
	@Range(max = 10000, message = "里程数位于0~1万公里")
	private Integer distance;

	/**
	 * 运单价
	 */
	@NotNull(message = "价格不能为空")
	@Range(max = 100000, message = "金额位于0~10万")
	private BigDecimal money;



	/**
	 * 我的司机Ids, 以 "," 分隔
	 */
	@Size(max = 255, message = "我的司机参数错误")
	private String myDriverUids = "";

	/**
	 * 优惠券id
	 */
	private Long couponId;

	/**
	 * 用车时间
	 */
	@Future(message = "预约时间必须是一个将来的日期")
	private Date estimateTime;

	/**
	 * 是否需要电子回单
	 */
	@NotNull(message = "是否需要电子回单不能为空")
	private Boolean hasReceipt;


//	/**
//	 * 我的司机uid数组
//	 *
//	 * @return
//	 */
//	public String[] driverUids() {
//		return myDriverUids.split(",");
//	}

}
